.\" A man page for updatedb.conf. -*- nroff -*-
.\"
.\" Copyright (C) 2005, 2007, 2008 Red Hat, Inc. All rights reserved.
.\"
.\" This copyrighted material is made available to anyone wishing to use,
.\" modify, copy, or redistribute it subject to the terms and conditions of the
.\" GNU General Public License v.2.
.\"
.\" This program is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 
.\" more details.
.\"
.\" You should have received a copy of the GNU General Public License along
.\" with this program; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
.\"
.\" Author: Miloslav Trmac <mitr@redhat.com>
.TH updatedb.conf 5 "Oct 2020" plocate

.SH NAME
/etc/updatedb.conf \- a configuration file for updatedb(8)

.SH DESCRIPTION
.B /etc/updatedb.conf
is a text file.
Blank lines are ignored.
A
.B #
character outside of a quoted string starts a comment
extending until end of line.

Other lines must be of the following form:
.RS
.I VARIABLE
.B =
\fB"\fIVALUE\fB"\fR
.RE

White space between tokens is ignored.
.I VARIABLE
is an alphanumeric string which does not start with a digit.
.I VALUE
can contain any character except for \fB\(dq\fR.
No escape mechanism is supported within
.I VALUE
and there is no way to write
.I VALUE
spanning more than one line.

Unknown
.I VARIABLE
values are considered an error.
The defined variables are:

.TP
\fBPRUNEFS\fR
A whitespace-separated list of file system types (as used in \fB/etc/mtab\fR)
which should not be scanned by
.BR updatedb (8).
The file system type matching is case-insensitive.  By default, no file system
types are skipped.

When scanning a file system is skipped,
all file systems mounted in the subtree are skipped too,
even if their type does not match any entry in \fBPRUNEFS\fR.

.TP
\fBPRUNENAMES\fR
A whitespace-separated list of directory names (without paths) which should not
be scanned by
.BR updatedb (8).
By default, no directory names are skipped.

Note that only directories can be specified, and no pattern mechanism (e.g.
globbing) is used.

.TP
\fBPRUNEPATHS\fR
A whitespace-separated list of path names of directories which should not be
scanned by
.BR updatedb (8).
Each path name must be exactly in the form
in which the directory would be reported by
.BR locate (1).

By default, no paths are skipped.

.TP
\fBPRUNE_BIND_MOUNTS\fR
One of the strings \fB0\fR, \fBno\fR, \fB1\fR or \fByes\fR.
If
.B PRUNE_BIND_MOUNTS
is \fB1\fR or \fByes\fR,
bind mounts are not scanned by
.BR updatedb (8).
All file systems mounted in the subtree of a bind mount are skipped as well,
even if they are not bind mounts.
As an exception, bind mounts of a directory on itself are not skipped.
Note that Btrfs subvolume mounts are handled internally in the kernel
as bind mounts (see
.BR btrfs-subvolume (8)),
and thus, may get skipped if you have also mounted the filesystem root itself.
To counteract this, make your root directory a Btrfs subvolume, too.

By default, bind mounts are not skipped.

.SH NOTES
When a directory is matched by \fBPRUNEFS\fR, \fBPRUNENAMES\fR or
\fBPRUNEPATHS\fR,
.BR updatedb (8)
does not scan the contents of the directory.
The path of the directory itself is, however, entered in the created database.
For example, if
.I /tmp
is in \fBPRUNEPATHS\fR,
.BR locate (1)
will not show any files stored in \fI/tmp\fR,
but it can show the
.I /tmp
directory.
This behavior differs from traditional
.B locate
implementations.

In some
.BR updatedb (8)
implementations \fBPRUNEPATHS\fR can be used to exclude non-directory files.
This is not the case in this implementation.

.B /etc/updatedb.conf
is a shell script in some implementations,
which allows much more flexibility in defining the variables.
Equivalent functionality can be achieved by using the command-line options
to
.BR updatedb (8).

.SH AUTHOR
Miloslav Trmac <mitr@redhat.com>

.SH SEE ALSO
.BR locate (1),
.BR updatedb (8)
